package com.platform.common.core.domain.model;

import com.platform.common.core.domain.entity.SysUser;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * @Description: 登录用户信息
 * @Author: wcs
 * @Date: 2024-10-23 17:02:27
 **/
@Data
public class LoginUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 用户唯一标识
     */
    private String token;

    /**
     * 用户名id
     */
    private Long userid;

    /**
     * 用户名
     */
    private String username;

    /**
     * 登录时间
     */
    private Long loginTime;

    /**
     * 过期时间
     */
    private Long expireTime;

    /**
     * 登录IP地址
     */
    private String ipaddr;

    /**
     * 登录令牌
     */
    private String accessToken;

    /**
     * 权限列表
     */
    private Set<String> permissions;

    /**
     * 角色列表
     */
    private Set<String> roles;

    /**
     * 组织列表
     */
    private Set<Long> orgIds;

    /**
     * 登录组织列表
     */
    private List<Long> loginDeptIds;

    /**
     * 用户登录组织关联基础数据类型
     */
    private String loginUserDeptType;

    /**
     * 用户登录组织关联基础数据编码
     */
    private String loginUserTypeFefCode;

    /**
     * 用户信息
     */
    private SysUser sysUser;

    /**
     * 登录
     */
    private String flag;

    /**
     * 修改密码时间
     */
    private Date modifyPwdTime;

    /**
     * 登录信息版本号，用于挤下线
     */
    private String version;

    /**
     * code
     */
    private String ipCode;

    /**
     * 数据权限集合
     */
    private List<DataPermissionDTO> dataPermissions;

    /**
     * 当前组织
     */
    private Long orgId;

    /**
     * 当前登录组织名称
     */
    private String orgName;

    /**
     * 用户类型 1-系统用户 2-游客登录
     */
    private String loginUserType;

}
